package com.ugoodtech.mdcc.client.service;

/* Copyright (C) Ugoodtech, Inc - All Rights Reserved
 * Unauthorized copying of this file, via any medium is strictly prohibited
 * Proprietary and confidential
 * Written by Stone Shaw, 16/3/17
 */


import com.ugoodtech.mdcc.client.dto.UserDetailVO;
import com.ugoodtech.mdcc.core.domain.*;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Date;

public interface UserService {

    boolean modifyPassword(User user, String oldPwd, String newPwd);

    boolean changePassword(User user, String newPwd);

    Page<User> queryUser(Nation nation, Pageable pageable);

    Page<User> queryUser(String key, Boolean enabled, String roleName, Date startDate, Date endDate, Pageable pageable,User currentUser);

//    User createThirdUser(String username, String password, String sex, String nickname, String avatar, User.RegistrationWay phoneNumberRegister);

//    public Page<User> findUserWhoFollow(User user, Pageable pageable);

    /**
     * 根据用户姓名获取用户信息
     */
    UserProfile getUserByNameOfEmployeeExactly(String name);

    UserProfile getUserProfile(Long userId);

    /**
     * Get user by id.
     *
     * @param userId id of user.
     * @return user detail information.
     */
    UserDetailVO getUser(Long userId);
}
